The present invention is directed, in general, to process control systems employing object-oriented software and, more specifically, to a timeout object for an object-oriented real-time process control system and a method of operating the same.
Real-time process control systems were first implemented within a single computer system. As the need to monitor and control more physical devices increased, the complexity and size of the process control systems also increased. Shortly thereafter, single computer real-time process control systems were unable to process all the information within a timely manner as required by the real-time process control environments.
To correct this processing problem, real-time process control systems evolved into multiple computer systems that were connected to each other with proprietary communication interfaces. The multiple computer systems processed data locally and communicated the information to the other computer systems over the proprietary communication interfaces. Since, the computer systems did not use a standard communication interface nor a standard protocol between each of the computer systems, modifications and additions to the systems were difficult, if not impossible.
This inter-computer incompatibility problem was resolved when the computer industry developed standardized networks and network protocols. Two of the industry standards were Ethernet and Transmission Control Protocol/Internet Protocol (xe2x80x9cTCP/IPxe2x80x9d) used on 10 base 2 coaxial cable. Ethernet and TCP/IP allowed various computer systems the ability to communicate to each other without using proprietary communication interfaces.
The next evolution in real-time process control systems was object oriented distributed processing. In object oriented distributed processing, requesting programs (xe2x80x9cclientsxe2x80x9d) call resource programs (xe2x80x9cobjectsxe2x80x9d) to process a request. In this design, the clients and objects are located on different computers on the network. To facilitate a standardized way for clients to locate and communicate with objects, Microsoft Corporation developed the Component Object Model (xe2x80x9cCOMxe2x80x9d) protocol. The COM protocol, incorporated into software libraries called xe2x80x9cCOM libraries,xe2x80x9d defines a standardized interface for locating and communicating to objects over the network without requiring the clients to know the location of the desired objects.
The process control industry incorporated the COM standard and Object Linking and Embedding (xe2x80x9cOLExe2x80x9d) in its real-time process control standard, calling the resulting standard OLE for Process Control (xe2x80x9cOPCxe2x80x9d). The OPC standard defined the interface and architecture for distributed real-time process control object processing.
One of the original requirements of all real-time process control systems was the processing of requests within a specific period of time. If the real-time process control system failed to process the request within a specific period of time, the real-time process control system could have caused damage when the real-time process control system failed to control a physical device. Therefore, the real-time process control software was required to execute requests within specific time limitations.
However, even though the new OPC and COM standards used the standard network protocol processing features, the standard network protocols did not allow programs to control requests based upon time. If the computer which contained the object died or was not available, the standard network protocols suspended execution indefinitely or for a very long time. Thus, the new OPC and COM standards did not meet the basic time processing requirements of real-time process control systems.
Real-time process control systems cannot afford to be suspended indefinitely if they use OPC or COM compliant programs. What is needed in the art is a way to prevent clients and objects from suspending indefinitely or suspending for a long period of time.
To address the above-discussed deficiencies of the prior art, the present invention provides, for use in time-limiting a request for information from a client to a resource, a timeout object, a method of operating the same and a real-time process control system employing the timeout object or the method. In one embodiment, the timeout object includes: (1) a client interface that receives, from the client, the request and a time-based parameter and (2) a resource interface that forwards the request to the resource and waits for the information an amount of time that is a function of the time-based parameter, the client interface: (2a) returning the information to the client if the timeout object receives the information within the amount of time and (2b) returning a timeout indicator to the client if the timeout object fails to receive the information within the amount of time.
The present invention therefore introduces the broad concept of interposing an intermediary object between a client and a resource to channel requests and information flowing between the client and the resource to allow time-limits to be placed on the requests. This avoids the unacceptably long wait that can occur in prior art systems by virtue of their lack of timeout control.
In one embodiment of the present invention, the timeout indicator indicates whether the resource was available to provide the information. In a related embodiment, the timeout indicator indicates whether the resource successfully processed the request. The timeout indicator may therefore assume different values representing codes for such conditions.
In one embodiment of the present invention, the amount of time terminates when the timeout object receives the information from the resource. In an embodiment to be illustrated and described, the time-based parameter may be set to a null value. This charters the timeout object to wait an indefinite amount of time (subject to other kinds of timeout) until the resource returns the information.
In one embodiment of the present invention, the client interface is capable of receiving a subsequent request from the client to extend the amount of time. In an embodiment to be illustrated and described, the client may generate the subsequent request to extend the amount of time in response to receipt of a timeout indicator indicating that the resource is processing the earlier request, but did not return information within the originally-allotted amount of time.
In one embodiment of the present invention, the timeout object is a Component Object Module (COM)-compliant object. In a related embodiment, the resource is an Object Linking and Embedding (OLE) for Process Control (OPC)-compliant object. Those skilled in the pertinent art are familiar with OPC and COM in general and are aware of their shortcomings with respect to time-limited requests. The present invention, while serving as a useful extension to OPC and COM to permit time-limited requests, is also quite useful for providing the capability of time-limited requests in other object-oriented environments.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.